Javascript - Class


Javascript中的Class有兩種特性,繼承(Inheritance)和多型or多態(Polymorphism)。


*繼承(Inheritance):
建立一個'子Class',並從'父Class'繼承相關屬性,程式碼如下:

class Animal {
  constructor(name) {
    this.name = name
  }
  makeSound() {
    return 'Animal sound'
  }
}

class Dog extends Animal {
  constructor(name) {
    super(name)
  }
}

const dog = new Dog('Dino')

console.log(dog.name) // Output: 'Dino'

建立Dog class的時候,使用extends以及super()來繼承'父Class'的屬性,因此可以使用dog.name來取得'Dino'。


*多型or多態(Polymorphism):
就算'子Class'是從'父Class'繼承來的,還是可以客製化'子Class'的屬性,程式碼如下:

class Dog extends Animal {
  constructor(name) {
    super(name)
  }
  makeSound() {
    return 'Woof!';
  }
}

const dog = new Dog('Dino')

console.log(dog.makeSound()) // Output: 'Woof!'

建立Dog class的時候,重新定義了makeSound(),同一個屬性在不同的class中有不同的實現方式,這就叫做多型。(建立新的屬性不算是多型)







你可能感興趣的文章

七天打造自己的 Google Map 應用入門 - Day03

七天打造自己的 Google Map 應用入門 - Day03

jQuery初學筆記-1

jQuery初學筆記-1

[13] 物件導向 OOP - Class

[13] 物件導向 OOP - Class






留言討論